1. Field
The disclosed embodiments relate to switch fabrics. More specifically, the disclosed embodiments relate to techniques for performing virtual port mappings to provide non-blocking behavior among physical ports in switch fabrics.
2. Related Art
Switch fabrics may be used to route traffic among servers in data centers. For example, an InfiniBand (InfiniBand™ is a registered trademark of InfiniBand Trade Association Corp.) switch fabric may connect processor and storage nodes in a data center using point-to-point, bidirectional serial links. The InfiniBand switch fabric may also provide Quality of Service (QoS) and reliability, availability, and serviceability (RAS) to the nodes.
In addition, gateways connected to the switch fabrics may improve data center efficiency and/or network consolidation. For example, an Ethernet gateway may be added to an InfiniBand switch fabric in a data center to allow a server in the data center to connect to an Ethernet Local Area Network (LAN) using a single physical adapter and cable. Traffic streams associated with virtual machines in the data center may thus include a mix of high-throughput, low-latency InfiniBand traffic and high-throughput Ethernet traffic carried over the InfiniBand communication medium.
However, a gateway connected to a switch fabric may include a set of physical ports that is connected to another set of physical ports in the switch fabric using a single physical link. For example, an Ethernet gateway in an InfiniBand switch fabric may appear as a target channel adapter (TCA) connected to a switch port, causing all Ethernet ports on the gateway to share a single InfiniBand link. From a software standpoint, the TCA may appear with one uplink port facing the switch and one or more downlink ports facing the Ethernet fabric. Because the single physical link may feed into multiple downlink ports, the downlink ports may exhibit head-of-line blocking. Such blocking behavior may be caused by bursty traffic patterns targeting multiple gateway ports and/or latency at individual gateway ports. As a result, the overall speed of the gateway may be limited to the slowest speed of any individual gateway port.
To alleviate such blocking behavior, only one gateway port may be connected to each physical link in the switch fabric. However, such a solution may be expensive and difficult to scale. Consequently, use of gateways connected to switch fabrics with single physical links may be facilitated by mechanisms for efficiently resolving blocking behavior among multiple physical ports in the gateways.